package negocio;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import dto.DestinoDTO;
import dto.PersonaHabilitadaDTO;
import entities.DestinoEntity;
import entities.PersonaHabilitadaEntity;

public class Destino 
{
	private int id;
	private String direccion;
	private List<PersonaHabilitada> personasHabilitadas;
	private Date fechaMax;
	private String coordenadasGPS;
	
	public Destino(DestinoDTO destino) {
		List<PersonaHabilitadaDTO> habilitadas= destino.getPersonasHabilitadas();
		this.id=destino.getId();
		this.direccion=destino.getDireccion();
		for(PersonaHabilitadaDTO ph: habilitadas)
		{
			this.personasHabilitadas.add(new PersonaHabilitada(ph));
		}
		this.fechaMax=destino.getFechaMax();
		this.coordenadasGPS=destino.getCoordenadasGPS();
	}

	public Destino() {
		// TODO Auto-generated constructor stub
	}

	public Destino(DestinoEntity destino) {
		List<PersonaHabilitadaEntity> habilitadas= destino.getPersonasHabilitadas();
		this.id=destino.getId();
		this.direccion=destino.getDireccion();
		for(PersonaHabilitadaEntity ph: habilitadas)
		{
			this.personasHabilitadas.add(new PersonaHabilitada(ph));
		}
		this.fechaMax=destino.getFechaMax();
		this.coordenadasGPS=destino.getCoordenadasGPS();
	}


	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}
	
	public String getDireccion() {
		return direccion;
	}
	
	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}
	
	public List<PersonaHabilitada> getPersonasHabilitadas() {
		return personasHabilitadas;
	}
	
	public void setPersonasHabilitadas(List<PersonaHabilitada> personasHabilitadas) {
		this.personasHabilitadas = personasHabilitadas;
	}
	
	public Date getFechaMax() {
		return fechaMax;
	}
	
	public void setFechaMax(Date fechaMax) {
		this.fechaMax = fechaMax;
	}
	
	public String getCoordenadasGPS() {
		return coordenadasGPS;
	}
	
	public void setCoordenadasGPS(String coordenadasGPS) {
		this.coordenadasGPS = coordenadasGPS;
	}
	
	public DestinoEntity toEntity()
	{
		DestinoEntity de = new DestinoEntity();
		de.setId(this.getId());
		return de;
	}

	public DestinoDTO toDTO() {
		DestinoDTO d = new DestinoDTO();
		d.setCoordenadasGPS(this.coordenadasGPS);
		d.setDireccion(this.direccion);
		d.setFechaMax(this.fechaMax);
		List <PersonaHabilitada> pn = new ArrayList<PersonaHabilitada>();
		List <PersonaHabilitadaDTO> pdto = new ArrayList<PersonaHabilitadaDTO>();
		for (PersonaHabilitada persona : pn) 
		{
			PersonaHabilitadaDTO p = new PersonaHabilitadaDTO();
			p.setDNI(persona.getDNI());
			p.setNombre(persona.getNombre());
			pdto.add(p);
		}
		d.setPersonasHabilitadas(pdto);
		return d;
	}

	
}
